﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using CDStore3Tiers;

namespace CuaHangDiaNhac
{
	public partial class frmDSGiamGia : DevComponents.DotNetBar.Metro.MetroForm
	{
		log4net.ILog log = log4net.LogManager.GetLogger("Danh sách giảm giá");
		StoreCDDataContext db;
		XLSuKien xl = new XLSuKien();
		DataGridViewTextBoxColumn colMaDia;
		DataGridViewTextBoxColumn colTenDia;
		DataGridViewTextBoxColumn colMaSK;
		XuLyDiaNhac XLDN = new XuLyDiaNhac();
		public int idsukien = 0;


		public void lockLogin()
		{
			string id = frmLogin.id;
			XLPhanQuyen phanquyen = new XLPhanQuyen();
			List<TaiKhoanChucNang> tkcn = new List<TaiKhoanChucNang>();
			tkcn = phanquyen.TKChucNang(frmLogin.id);


			if (phanquyen.CoQuyen(id, 1101))
			{
				btnXoa.Visible = true;
			}
		}

		public void closeall()
		{
			btnXoa.Visible = true;
		}


		public frmDSGiamGia(int IDSK)
		{
			idsukien = IDSK;
			db = new StoreCDDataContext();
			db.Connection.ConnectionString = getConfig.getConnection();
			InitializeComponent();
			if (IDSK == 0)
			{
				DevComponents.DotNetBar.MessageBoxEx.Show("Hiện cửa hàng không tổ chức sự kiện nào!");
			}
			else
			{
				int pt = xl.PhanTramGG(IDSK);
				string date = xl.NgayKT(IDSK).ToShortDateString();
				string newDate = DateTime.Parse(date).ToString("dd/MM/yyyy");
				this.Text = "Các mặt hàng được giảm giá " + pt + " % đến hết ngày " + newDate;
				LoadDGV(IDSK);
			}
		}

		private void dataGridViewX1_MouseDown(object sender, MouseEventArgs e)
		{
			DataGridView.HitTestInfo hit;
			if (e.Button == MouseButtons.Right)
			{
				hit = dataGridViewX1.HitTest(e.X, e.Y);
				if (hit.Type == DataGridViewHitTestType.Cell)
				{
					if (!((DataGridViewRow)(dataGridViewX1.Rows[hit.RowIndex])).Selected)
					{
						dataGridViewX1.ClearSelection();
						((DataGridViewRow)dataGridViewX1.Rows[hit.RowIndex]).Selected = true;
					}
				}
			}
			if (dataGridViewX1.SelectedRows.Count >= 1)
				btnXoa.Enabled = true;
			else
				btnXoa.Enabled = false;
		}

		private void btnXoa_Click(object sender, EventArgs e)
		{
			for (int i = 0; i < dataGridViewX1.SelectedRows.Count; i++)
			{
				try
				{
					int selectMaSK = Convert.ToInt32(dataGridViewX1.SelectedRows[i].Cells["cnameMaSK"].Value.ToString());
					int selectMaDia = Convert.ToInt32(dataGridViewX1.SelectedRows[i].Cells["cnameMaDia"].Value.ToString());
					DialogResult accept = DevComponents.DotNetBar.MessageBoxEx.Show("Xoá đĩa nhạc có mã số " + selectMaDia + " khỏi sự kiện ? ", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
					if (accept == DialogResult.Yes)
					{
						var xoa = db.DSGiamGia_Delete(selectMaSK, selectMaDia);
						log.Info(frmLogin.id + ": đã xóa dĩa nhạc " + XLDN.TenDN(selectMaDia) + " ra khỏi danh sách giảm giá");
						db.SubmitChanges();
					}
				}
				catch (Exception)
				{
				}

			}
			LoadDGV(idsukien);
		}

		public void LoadDGV(int IDSK)
		{

			dataGridViewX1.DataSource = null;

			colMaDia = new DataGridViewTextBoxColumn();
			colMaDia.DataPropertyName = "MaDia";
			colMaDia.HeaderText = "Mã đĩa";
			colMaDia.Name = "cnameMaDia";
			dataGridViewX1.Columns.Add(colMaDia);

			colTenDia = new DataGridViewTextBoxColumn();
			colTenDia.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
			colTenDia.DataPropertyName = "TenDia";
			colTenDia.HeaderText = "Tên đĩa nhạc ";
			colTenDia.Name = "cnameTenDia";
			dataGridViewX1.Columns.Add(colTenDia);

			colMaSK = new DataGridViewTextBoxColumn();
			colMaSK.DataPropertyName = "MaSK";
			colMaSK.HeaderText = "mã sự kiện ";
			colMaSK.Name = "cnameMaSK";
			colMaSK.Visible = false;
			dataGridViewX1.Columns.Add(colMaSK);

			dataGridViewX1.DataSource = xl.ShowDSGG(IDSK);
		}

		private void frmDSGiamGia_Load(object sender, EventArgs e)
		{
			closeall();
			lockLogin();
			db = new StoreCDDataContext();
			db.Connection.ConnectionString = getConfig.getConnection();
			log.Info(frmLogin.id + ": đã load lên danh sách giảm giá");
		}

	}
}